// 封装axios核心库
import axios from 'axios'
//引入node的内置模块 querystring 字符串查询工具
import qsString from 'querystring'
//基础地址
let baseUrl = '/api'


//拦截器（请求拦截器）
axios.interceptors.request.use(req=>{
    return req
})
//响应拦截器
axios.interceptors.response.use(res=>res.data)


//get 方式

/* 
axios.get(url,{params:{key:value}})
url   要访问 的接口地址
params  参数，有就有 没有就默认  {}
*/
export const get = (url,params={})=>{
    return new Promise((resolve,reject)=>{
        axios.get(baseUrl + url,{
            params
        })
        .then(res=>{
            resolve(res)
        })
        .catch(err=>{
            reject(err)
        })
    })
}

//post
/* 
axios.post(url,{key:value})

封装
url  要访问的接口地址

{} 参数  params

post 比较特殊 ，post就是表单提交 有没有上传文件
有 怎么办
没有  怎么办
*/

export const post = (url,params={},isFile=false)=>{
    let data ={}
    //针对于是否有上传文件要进行判断
    if(isFile){
        data = new FormData()
        for(let i in params){
            data.append(i,params[i])
        }
    }else{
        data = qsString.stringify(params)
    }
    return new Promise((resolve,reject)=>{
        axios.post(baseUrl+url,data)
        .then(res=>{
            resolve(res)
        })
        .catch(err=>{
            reject(err)
        })
    })
}

